package controller;

import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
import javax.swing.JOptionPane;
import gui.pnlConsCargaMaquina;
import gui.pnlConsSituacaoFabrica;
import beans.TbBoleto;
import beans.TbMaquina;
import beans.TbSetor;
import dao.TbBoletoDAO;
import dao.TbMaquinaDAO;
import dao.TbPerfilDAO;
import dao.TbProduzidoDAO;
import dao.TbSetorDAO;

public class ConsSituacaoContr {
	private pnlConsSituacaoFabrica window;
	private DecimalFormat dec = new DecimalFormat("##.00");
	private SimpleDateFormat timestampFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
	final static String charEspeciais = "`~!@#$%^&*()_+=\\|\"':;?/>.<, "; 
	
	public ConsSituacaoContr(pnlConsSituacaoFabrica pnl) {
		window = pnl;
	}

	public boolean isNumerico(char c) {
		if(Character.isDigit(c))
			return true;
		else 
			return false; 
	}

	
	public boolean isEspecial(char c) {
		for(int i = 0; i < charEspeciais.length(); i++) {
			if(c == charEspeciais.charAt(i)) 
				return true;
		}
		
		return false;
	}
	
	public void PreencherTabela() {
	List <TbMaquina> ListaMaq = RecuperaListMaq();
		
		window.getTbmSit().ClearTable();
		
		if (!ListaMaq.isEmpty()){	
		for(TbMaquina maq: ListaMaq){
			
			String usuario = (maq.getTbUsuario()== null)? " ": Integer.toString(maq.getTbUsuario().getUsuarioCod())+
					" - " + maq.getTbUsuario().getTbFuncionario().getFuncionarioNome();
			String Sector = Integer.toString(maq.getTbSetor().getSetorCod())+ " - " + (maq.getTbSetor().getSetorDescr());
		    String MaqNumber = Integer.toString(maq.getMaquinaCod());  
		   //___________________________________
		    String codBoleto = (BuscarBoleto(maq.getMaquinaCod()) != null)?  (Long.toString(BuscarBoleto(maq.getMaquinaCod()).getBoletoCod())):"##";	
		    String codOp = (BuscarBoleto(maq.getMaquinaCod()) != null)? (Long.toString(BuscarBoleto(maq.getMaquinaCod()).getTbOp().getOpCod())):"##" ;
		    String descrProd = (BuscarBoleto(maq.getMaquinaCod()) != null) ?  (BuscarBoleto(maq.getMaquinaCod()).getTbOp().getTbProduto().getProdutoDescr()):" ##";
		    String opQtd = (BuscarBoleto(maq.getMaquinaCod()) != null) ?  Long.toString(BuscarBoleto(maq.getMaquinaCod()).getTbOp().getOpQuantidade()):"##";
		    //__________________________________
		    String qtprod = (BuscarBoleto(maq.getMaquinaCod()) != null)? (Long.toString((BuscarBoleto(maq.getMaquinaCod()).getBoletoQtproduzida()))):"##  " ;
		    String meta = (BuscarBoleto(maq.getMaquinaCod()) != null)? (Long.toString((BuscarBoleto(maq.getMaquinaCod()).getBoletoMeta()))): "  ##";
		    
		    String[] linha = {	codBoleto,
						codOp,
						Sector,
						MaqNumber,
						descrProd,
						usuario,
			qtprod + " de " + meta,
						opQtd	};
	
				window.getTbmSit().addRow(linha);
		}
		}else
			JOptionPane.showMessageDialog(null,"Registro nenhum encontrado");
			}

	
	public List<TbMaquina> RecuperaListMaq() {
	TbMaquinaDAO dao= new TbMaquinaDAO();
		
	StringBuffer query = new StringBuffer ("from TbMaquina where maquinaDescr = " + "'"+ window.getcmbMaquina().getSelectedItem()+"'"); 

		return dao.listByQuery(query.toString());
	}

	
	public List <String> ListSetor(){
		TbSetorDAO dao = new TbSetorDAO();
	return dao.ListarSetorr();
	}
	
	private TbBoleto BuscarBoleto(int codMaq) {
		TbBoletoDAO boletoDao = new TbBoletoDAO();
		
		return boletoDao.findByCodMaq(codMaq);
	}
	
	
	
	public List <String> ListMachine(){
		TbMaquinaDAO dao = new TbMaquinaDAO();
	return dao.ListarMaqDescr();
	}
		
	
	
}
	
		

